Apparatus and method for storing and reading data

ABSTRACT

An apparatus (38) for storing data includes a storage media (14). Also included are a number of vertical bars (40), each providing a vertical edge (50) for defining columns (44), and a number of horizontal bars (42), each providing a horizontal edge (52) for defining rows (46). The vertical bars (40) and the horizontal bars (42) are printed on storage media (14). A number of data blocks (48) are formed, each data block (48) located in a row (46), column (44) position.

TECHNICAL FIELD OF THE INVENTION

This invention relates in general to digital computing systemsequipment, and more particularly to an apparatus and method for storingdata on a printable media, and a method for reading the data.

BACKGROUND OF THE INVENTION

It is often desirable to distribute binary computer data for a largenumber of users in a manner that is cost-effective. The equipment andmedia for transferring the data to the user must be available andaffordable. In the past, if a publisher desired to distribute data, suchas a computer program, he had few choices. The publisher could providemagnetic media, such as a floppy disk, on which the data was stored. Thepublisher could also provide the data over an electronic communicationsnetwork such as the telephone lines. However, floppy disks areexpensive. Sending the data over an electronic media, such as telephonelines, is quick and perhaps less expensive, but the user must have themeans to receive the data this way. The expense of such means, such as amodem, could be prohibitive to the user.

One approach to mass distribution of data uses paper as the storagemedia. Binary data is printed on the paper in a specified format orstructure. In this way, the data can reach a large number of users,perhaps through a magazine or a newspaper. One of the ways a user cantransfer the data from the paper to his computer is to feed the paperthrough an optical scanner. The scanner scans the data and converts itinto electronic signals, useable by a computer.

One of the problems associated with existing paper media is that theparticular type of scanner needed, which is of a thermal type, is veryexpensive.

A second problem is that the printed data format is very sensitive toskewing of the scanning device. That is, the media must be alignedproperly, with little or no skewing between the media and the scanningdevice, in order that the scanner read the data properly.

A third problem is scaling and optical distortion of the printed data.Such distortion may arise when the media is printed or copied. Printeddata having these distortions may not be converted into the properelectronic signals after it is scanned.

Therefore, a need has arisen for an improved apparatus and method ofstoring printed data, wherein data may be transferred into a computerwith a device whose cost is not prohibitive. In addition, the apparatusand method must be tolerant of skewing problems associated with thealignment of the scanner relative to the physical layout of the storageformat, as well as of distortions of the printed data incurred duringprinting or copying of the printed media.

SUMMARY OF THE INVENTION

In accordance with the present invention, an apparatus for storing datais provided. This apparatus includes a storage media. A number ofvertical bars are printed on the storage media. Each vertical barprovides a vertical edge for defining columns. A number of horizontalbars are also printed on the storage media. Each horizontal bar providesa horizontal edge for defining rows. Additionally, a number of datablocks are printed on the storage media. The data blocks represent atleast one bit of binary data, with a data block being located at eachrow/column position.

In an other aspect of the invention, each of the data blocks has a knownhorizontal distance from an associated vertical edge and a knownvertical distance from an associated horizontal edge.

In yet another aspect of the invention, each data block includes morethan one data unit, where each data unit represents a bit of binarydata.

A first technical advantage of the invention is that it provides a costeffective way to store data.

A second technical advantage of the invention is that it provides a costeffective way to transfer the data to a large number of users.

A third technical advantage of the invention is that the stored data canbe scanned by a number of widely available and affordable devices.

A fourth technical advantage of the invention is that the data can beinterpreted by a number of widely available and affordable devices.

A fifth technical advantage of the invention is that stored data can beproperly interpreted when the media is skewed with respect to thescanning device.

A sixth technical advantage of the invention is that the stored data canbe interpreted when the data, horizontal bars or vertical bars printedon the media are distorted from the printing process or copying.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention, and theadvantages thereof reference is now made to the following descriptionstaken in conjunction with the accompanying drawings, in which:

FIG. 1 is a device for scanning and interpreting data printed on aprinted storage media.

FIG. 2 illustrates a portion of the printable storage media of FIG. 1with its registration bars and data block format.

FIG. 3 is a view of the relationship between a data unit of FIG. 2 andthe pixel elements of a scanning unit.

FIG. 4 is a pixel map of the printed storage media when it is skewedwith respect to the scanning and interpreting device of FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

The preferred embodiment of the present invention and its advantages arebest understood by referring to FIGS. 1-4 of the drawings, like numeralsbeing used for like and corresponding parts of the various drawings.

FIG. 1 depicts a data scanning device 10 constructed in accordance withthe invention. A pinch bar roller assembly 12 moves a printed storagemedia 14 into a position for scanning by scanning assembly 16. Scanningassembly 16 includes a light source 26 which emits light which isreflected from the surface of media 14. In the embodiment of thisdescription, light source 26 may comprise, for example, a light emittingdiode (LED) array. This reflected light is focused by optics 28 ontoimage capture device 18, which converts this light into electricalsignals. In the embodiment of this invention, image capture device 18may comprise, for example, a charge coupled device (CCD). Theseelectronic signals are transported via buffer 20 to an interpreter 22.Interpreter 22 interprets the data and converts it into acomputer-readable format. The structure and operation of buffer 20 andinterpreter 22 are explained in detail below.

Image capture device 18 scans one line of its pixel elements at a time.Controller 24 maintains a proper rotational speed of roller motor 30,thereby allowing image capture device 18 adequate time to scan eachline. Timer 34 receives a signal from optical pickup 36 every timeroller assembly 12 moves media 14 one line. Timer 34 relays thisinformation via a clock signal to inform image capture device 18 tobegin scanning the new line. Timer 34 clocks the electronic signals orpixels from image capture device 18 into and out of buffer 20.Furthermore, timer 34 clocks the pixel data from buffer 20 into memory38 of interpreter 22. This pixel data is stored by input buffer 43 untilinterpreter 22 converts it into useable binary data. The binary data mayalso be stored in memory 38 until needed.

FIG. 2 shows a portion of a storage media 14 in "blank" form, i.e.,without printed data, but with an outline of data unit positions inwhich data can be printed. The dashed lines are for clarification andexplanation only, and are not actually printed on storage media 14.

Only three rows 46 and columns 44 are shown. A typical media 14 wouldhave many more rows 46 and columns 44 printed on it. Typically, media 14is a long strip with more rows 46 than columns 44, with the total columnwidth being compatible with the linear reading capacity of scanningassembly 16.

In one embodiment, storage media 14 is paper. However, media 14 could beany other type of media having a printable surface. Storage media 14 hasprinted upon it vertical registration bars 40 and horizontalregistration bars 54. These registration bars 40 and 54 definerow/column positions.

At each row/column position is an area in which a data block 48 may beprinted, as indicated by dotted lines. More specifically, each datablock 48 is within an area whose boundaries are a consecutive pair ofvertical edges 50 and a consecutive pair of horizontal edges 52. In thisembodiment, media 14 is scanned from top to bottom and from left toright, where horizontal edges 52 and vertical edges 50 are leading andtrailing edges of their respective registration bars 54 and 40.

Each data block 48 includes a number of data units 56. Data units 56 arealigned horizontally into horizontal channels 58. Data units 56 are alsovertically aligned into vertical channels 60. In this embodiment, thereare four vertical channels 60 per column 44, and two horizontal channels58 per row 46. Each data block 48 is shown to include seven data units56. However, other embodiments may have fewer data units 56 per datablock 48. For example, data units 56₁, 56₆, and 56₇, and all other dataunits 56 equivalently located in other data blocks 48 could be removed,so that only one of the two horizontal channels 58 per data block 48contain data units 56. Further, some data units 56 in the remaininghorizontal channel 58 could be removed. This would result in less thanfour data units 56 per data block 48. In fact, any combination of dataunits 56 may be removed, as long as this information is present in thememory of interpreter 22. In another embodiment, if either data unit 56₁or 56₇ and its equivalents are removed, horizontal registration bars 54can be extended by an area of one data unit 56 on either or both sides.

An embodiment where the right portion of horizontal segments 54 occupyformer data unit 56₇ and equivalents is shown in FIG. 4. In general,data units 56 are contained in a horizontal channel, such as horizontalchannel 58_(a), on either side of a horizontal registration bar 54, orin the next horizontal channel, such as 58_(b), below a horizontalregistration bar 54. Also, in each row/column position, there is a spacebetween its associated vertical registration bar 40 and data block 48,and a space between data block 48 and the next horizontal registrationbar 54. As explained below, these spaces insure black to whitetransitions when locating edges 50 and 52.

There is a vertical distance of V between each horizontal edge 52 andthe next horizontal channel 58 of data units 56. Also, there is ahorizontal distance, H, between each vertical edge 50 and the nextvertical channel 60 of data units 56. In other embodiments, thesedistances may be different, and this difference will not change theoperation of the scanning and interpreting device 10.

Referring to FIG. 3, each data unit 56 is scanned as or subdivided intoa number of pixels 62, here nine, by the scanning action of imagecapture device 18. The pixel size corresponds to the size of eachscanning element of image capture device 18. The number of pixelsdepends upon the number of scanning elements in image capture device 18.That is, the number of pixels depends upon the resolving power, orresolution, of image capture device 18.

Referring to FIG. 4, which is discussed more fully below, one can seethat vertical bars 40 and horizontal bars 54, which are of widths H andV respectively, are subdivided by the image capture device 18 scanningaction into a number of pixels as well. In this embodiment, pixeldimensions P are one third of H and V, or 1/300 of an inch, for eachside. This three to one ratio of pixels 62 to minimum widths H and V issufficient to accommodate the resolution of image capture device 18.

Because image capture device 18 scans one line of pixels 62 at a time,it scans three lines of pixels to read one data unit 56. Interpreter 22uses a program stored in read only memory (ROM) 37 of memory 38 toconvert these pixels 62 into binary data after they are scanned. Pixeldata from buffer 20 is fed into input buffer 43 and temporarily storedthere. Processor 45 then converts this pixel data "on the fly" intobinary form, and transmits it to random access memory (RAM) 41 forstorage. Input buffer 43 contains enough buffer space to store one scanline of pixel data, with allowance for skewing.

At an indefinite time later, processor 45 can retrieve the binary datafrom RAM 41 and transmit it to output buffer 47. Output buffer 47temporarily stores the binary data until it is retrieved by an externaldevice.

In this embodiment, the media 14 is scanned from the top to the bottomof and from the left to the right of the media 14 shown in FIG. 2.Interpreter 22 first locates vertical edge 50_(a) by noting the changeof color from dark to light pixels 62 as the image capture device 18scans from vertical bar 40_(a) past edge 50_(a). Interpreter 22 thenlocates horizontal edge 52_(a). It does this by noting the change inpixel color from light to dark as image capture device 18 scans thefirst line of pixels 62 in horizontal segment 54_(a).

Interpreter 22 uses horizontal edge 52_(a) and vertical edge 50_(a) tolocate the position of any data unit 56 within data block 48_(a).Interpreter 22 has been programmed with the distance, in pixels, thateach data unit 56 is located from the corresponding horizontal edge 52and vertical edge 50 which define the boundaries of the data block 48containing the data unit 56 in question. For example, interpreter 22counts three pixels from horizontal edge 52_(a) and three pixels fromvertical edge 50_(a) to locate the top and left edges respectively ofdata unit 56₂.

Interpreter 22 determines the color or shade of each of the nine pixelscontained within data bit 56₂, and then determines the value (logic 1 orlogic 0) of data bit 56₂. In this embodiment, a dark or black colorcorresponds to a logic one, whereas a light or white color correspondsto a logic zero. However, one can see that black could be interpreted asa logic zero, and white a logic one, without any change in thefundamental operation of the invention.

Ideally, each of the nine pixels 62 which form a data unit 56 will allbe of the same color, the color depending upon the value of the dataunit 56. Occasionally, the nine pixels 62 will not be of the same color.This nonuniformity in color can be caused by imperfections in theequipment or process used in printing media 14.

For example, suppose data unit 56₃ was to be a white or blank color torepresent a logic zero. However, black coloring, or ink, from the lastrow of pixels 62 in horizontal segment 54_(a) flowed into the first rowof pixels 62 in data unit 56₃, making them black. Data unit 56₃ wouldnow be comprised of six white pixels and three black pixels. Interpreter22 implements an algorithm which determines that in this case, data unit56₃ is indeed white, and not black. The algorithm gives various weightsof probability to each pixel, corresponding to how likely or unlikely itis that the pixel will have an erroneous color. For example, pixels inthe center of a data unit 56 have a lower probability of error thanpixels along the edge of the same data unit 56.

Interpreter 22 repeats this locating and determining process for eachdata unit 56 in data block 48_(a), and then converts these data units 56into a readable, useable or otherwise useful form such as binary data.This binary can represent a text file, a computer program or otherinformation. Interpreter 22 then moves on to the next data block 48_(b),and continues until all data blocks 48 in row 46_(a) are read.Interpreter 22 then interprets the first data block 48_(a) in row 46_(b)and continues on in a like manner until all data blocks 48 are read.

FIG. 4 is a pixel map of a scanned printed storage media 14 generated byinterpreter 22 when media 14 is skewed approximately three degreesclockwise with respect to scanning assembly 16. FIG. 4 also illustrateshow the scanning action of image capture device 18 divides thecomponents of storage structure 38 into a collection of black and whitepixels 62. As in FIG. 2, the dashed lines are drawn for clarity only.Such dashed lines are not part of the pixel map generated by interpreter24. Also, horizontal bar segments 54 are extended to include the areaoccupied by data unit 56₇ and corresponding data units 56 in FIG. 2.

As a result of the media 14 being skewed, data blocks 48_(g-i) areshifted to the left by one pixel in the pixel map. The last row ofpixels in the portion of horizontal data channel 58_(d) within column44_(c) is also shifted to the left by one pixel. The portion ofhorizontal rows 46_(a-c) within column 44_(c) is shifted down by onepixel. However, the corresponding portions of vertical edges 50 andhorizontal edges 52 are shifted in the same respective directions by onepixel as well. Therefore, each pixel 62 within data units 56 remains aconstant perpendicular horizontal and vertical distance from acorresponding horizontal edge 52 and vertical edge 50 respectively.Thus, this skew of media 14 does not prevent interpreter 22 fromperforming the locating and determining process as defined above.

Although the present invention and its advantages have been described indetail, it should be understood that various changes, substitutions andalterations can be made therein without departing from the spirit andscope of the invention as defined by the appended claims.

What is claimed is:
 1. Apparatus for storing data, comprising:a storagemedia having a printable surface on which data is to be stored; aplurality of horizontally spaced, vertical registration bars, eachhaving a width, the surface of said storage media, each of said verticalregistration bars providing a vertical edge defining a boundary of acorresponding column so as to provide a plurality of columns; aplurality of vertically spaced, horizontal registration bars, eachhaving a width, printed on the surface of said storage media, each ofsaid horizontal registration bars being defined by a plurality ofseparate horizontal sectors arranged in alignment with each other andrespectively disposed within a different column of said plurality ofcolumns, each of said horizontal registration bars providing ahorizontal edge defining a boundary of a corresponding row so as toprovide a plurality of rows said vertical and horizontal bars beingnon-intersecting; and a plurality of data blocks on the surface of saidstorage media, each of said data blocks being disposed within an area onthe surface of said storage media at a respective row/column position;each data block being representative of at least one bit of binary datasaid bit of binary data being printed to represent to represent one of"1" and "0", or being blank to represent the other of "1" and "0". 2.The apparatus of claim 1, wherein each of said data blocks has a knownhorizontal distance from an associated vertical edge and a knownvertical distance from an associated horizontal edge.
 3. The apparatusof claim 1, wherein each data block has a plurality of data units, eachdata unit representing a bit of binary data.
 4. The apparatus of claim 1and further comprising an optical scanner with a prescribed resolvingability wherein dimensions of each of said plurality of vertical bars,horizontal bars and data bits is larger than said prescribed resolvingability of said optical scanner.
 5. The apparatus of claim 4, whereinsaid dimensions are at least three times said prescribed resolvingability.
 6. The apparatus of claim 3, wherein said each data unitcomprises a plurality of pixels respectively representing regions ofsaid data unit, each of said pixels having a pixel value of either "1"or "0" wherein any printed pixels are representative of one of "1" and"0" and any blank pixels are representative of the other of "1" and "0".7. The apparatus of claim 1, wherein each data block is at leastpartially positioned in a first horizontal channel located below ahorizontal bar.
 8. The apparatus of claim 1, wherein each data block ispositioned in a first horizontal channel located below a horizontal barand a second horizontal channel including said horizontal bar.
 9. Theapparatus of claim 1 wherein said storage media is paper.
 10. Theapparatus of claim 1, wherein each of said plurality of vertical bars isparallel to every other of said plurality of vertical bars, and each ofsaid plurality of horizontal bars is parallel to every other of saidplurality of horizontal bars.
 11. The apparatus of claim 1 wherein theprintable surface of said storage media is scanned by a scanner systemcomprising:a scanner for scanning the printable surface of said storagemedia and converting said plurality of data blocks into pixel data froma plurality of pixels respectively representing regions of each datablock, each of said pixels having a pixel data value of either "1" or"0" wherein any printed pixels are representative of one of "1" and "0"and any blank pixels are representative of the other of "1" and "0"; andan interpreter for converting said pixel data to said at least one bitof binary data for each of said plurality of data blocks.
 12. Theapparatus of claim 11 wherein said interpreter further comprises:aprocessor for executing instructions for converting said pixel data tosaid at least one bit of binary data; and a program memory programmedfor instructing said processor tolocate a vertical edge of a column,locate a horizontal edge of a row, and locate a data block apredetermined vertical distance from said horizontal edge and apredetermined horizontal distance from said vertical edge.